package com.xjh.basestudy.leetcode.question;

/*
* 给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。

回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。

例如，121 是回文，而 123 不是。

* */
public class Q9_PalindromeNumber {
    public static void main(String[] args) {
        System.out.println(isPalindrome(1234321));
        System.out.println(getType(new StringBuilder(231 + "")));//stringBuilder 类型
        System.out.println(getType(231 + ""));//字符串类型
        System.out.println(isPalindrome1(1234321));
    }

    private static boolean isPalindrome(int x) {
        String reversedStr = (new StringBuilder(x + "")).reverse().toString();
        //基本类型不能用equals、所以用字符串类型
        return (x + "").equals(reversedStr);
    }

    public static boolean isPalindrome1(int x) {
        if (x < 0)
            return false;
        int rem = 0, y = 0;
        int quo = x;
        while (quo != 0) {
            //每次得到最后一位数
            rem = quo % 10;
            // y的作用是得到反转后的数，
            y = y * 10 + rem;
            //得到除以10后的整数，意味着去除最后一位数
            quo = quo / 10;
        }
        //比较反转前和反转后的数
        return y == x;

    }

    //得到变量类型
    private static String getType(Object o) { //获取变量类型方法
        return o.getClass().toString(); //使用int类型的getClass()方法
    }
}
